/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Persistencia;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author BATAQUERO
 */
@Entity
@Table(name = "informe_final_practica_empresarial")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findAll", query = "SELECT i FROM InformeFinalPracticaEmpresarial i"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByIdInformeFinalPractica", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.idInformeFinalPractica = :idInformeFinalPractica"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByFechaInforme", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.fechaInforme = :fechaInforme"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByAspectosPositivosPractica", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.aspectosPositivosPractica = :aspectosPositivosPractica"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByAspectosNegativosPractica", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.aspectosNegativosPractica = :aspectosNegativosPractica"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByAutoevPuntualidad", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.autoevPuntualidad = :autoevPuntualidad"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByAutoevDisciplina", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.autoevDisciplina = :autoevDisciplina"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByAutoevCompromiso", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.autoevCompromiso = :autoevCompromiso"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByAutoevCumplimientoPuntualidad", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.autoevCumplimientoPuntualidad = :autoevCumplimientoPuntualidad"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByAutoevCalidadTrabajo", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.autoevCalidadTrabajo = :autoevCalidadTrabajo"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByAutoevCooperacionTrabajoEquipo", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.autoevCooperacionTrabajoEquipo = :autoevCooperacionTrabajoEquipo"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByAutoevLiderazgoIniciativa", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.autoevLiderazgoIniciativa = :autoevLiderazgoIniciativa"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByFortalezas", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.fortalezas = :fortalezas"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByDebilidades", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.debilidades = :debilidades"),
    @NamedQuery(name = "InformeFinalPracticaEmpresarial.findByRecomendaciones", query = "SELECT i FROM InformeFinalPracticaEmpresarial i WHERE i.recomendaciones = :recomendaciones")})
public class InformeFinalPracticaEmpresarial implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_informe_final_practica")
    private Integer idInformeFinalPractica;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha_informe")
    @Temporal(TemporalType.DATE)
    private Date fechaInforme;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "aspectos_positivos_practica")
    private String aspectosPositivosPractica;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "aspectos_negativos_practica")
    private String aspectosNegativosPractica;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 3)
    @Column(name = "autoev_puntualidad")
    private String autoevPuntualidad;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 3)
    @Column(name = "autoev_disciplina")
    private String autoevDisciplina;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 3)
    @Column(name = "autoev_compromiso")
    private String autoevCompromiso;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 3)
    @Column(name = "autoev_cumplimiento_puntualidad")
    private String autoevCumplimientoPuntualidad;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 3)
    @Column(name = "autoev_calidad_trabajo")
    private String autoevCalidadTrabajo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 3)
    @Column(name = "autoev_cooperacion_trabajo_equipo")
    private String autoevCooperacionTrabajoEquipo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 3)
    @Column(name = "autoev_liderazgo_iniciativa")
    private String autoevLiderazgoIniciativa;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "fortalezas")
    private String fortalezas;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "debilidades")
    private String debilidades;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "recomendaciones")
    private String recomendaciones;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idInformeFinalPractica")
    private List<DetalleActividadesSemestre> detalleActividadesSemestreList;
    @JoinColumn(name = "id_estudiante", referencedColumnName = "id_estudiante")
    @ManyToOne(optional = false)
    private Estudiante idEstudiante;
    @Basic(optional = false)
    @NotNull
    @Column(name = "edicion_formato")
    private boolean edicionFormato;

    public InformeFinalPracticaEmpresarial() {
    }

    public InformeFinalPracticaEmpresarial(Integer idInformeFinalPractica) {
        this.idInformeFinalPractica = idInformeFinalPractica;
    }

    public InformeFinalPracticaEmpresarial(Integer idInformeFinalPractica, Date fechaInforme, String aspectosPositivosPractica, String aspectosNegativosPractica, String autoevPuntualidad, String autoevDisciplina, String autoevCompromiso, String autoevCumplimientoPuntualidad, String autoevCalidadTrabajo, String autoevCooperacionTrabajoEquipo, String autoevLiderazgoIniciativa, String fortalezas, String debilidades, String recomendaciones) {
        this.idInformeFinalPractica = idInformeFinalPractica;
        this.fechaInforme = fechaInforme;
        this.aspectosPositivosPractica = aspectosPositivosPractica;
        this.aspectosNegativosPractica = aspectosNegativosPractica;
        this.autoevPuntualidad = autoevPuntualidad;
        this.autoevDisciplina = autoevDisciplina;
        this.autoevCompromiso = autoevCompromiso;
        this.autoevCumplimientoPuntualidad = autoevCumplimientoPuntualidad;
        this.autoevCalidadTrabajo = autoevCalidadTrabajo;
        this.autoevCooperacionTrabajoEquipo = autoevCooperacionTrabajoEquipo;
        this.autoevLiderazgoIniciativa = autoevLiderazgoIniciativa;
        this.fortalezas = fortalezas;
        this.debilidades = debilidades;
        this.recomendaciones = recomendaciones;
    }

    public Integer getIdInformeFinalPractica() {
        return idInformeFinalPractica;
    }

    public void setIdInformeFinalPractica(Integer idInformeFinalPractica) {
        this.idInformeFinalPractica = idInformeFinalPractica;
    }

    public Date getFechaInforme() {
        return fechaInforme;
    }

    public void setFechaInforme(Date fechaInforme) {
        this.fechaInforme = fechaInforme;
    }

    public String getAspectosPositivosPractica() {
        return aspectosPositivosPractica;
    }

    public void setAspectosPositivosPractica(String aspectosPositivosPractica) {
        this.aspectosPositivosPractica = aspectosPositivosPractica;
    }

    public String getAspectosNegativosPractica() {
        return aspectosNegativosPractica;
    }

    public void setAspectosNegativosPractica(String aspectosNegativosPractica) {
        this.aspectosNegativosPractica = aspectosNegativosPractica;
    }

    public String getAutoevPuntualidad() {
        return autoevPuntualidad;
    }

    public void setAutoevPuntualidad(String autoevPuntualidad) {
        this.autoevPuntualidad = autoevPuntualidad;
    }

    public String getAutoevDisciplina() {
        return autoevDisciplina;
    }

    public void setAutoevDisciplina(String autoevDisciplina) {
        this.autoevDisciplina = autoevDisciplina;
    }

    public String getAutoevCompromiso() {
        return autoevCompromiso;
    }

    public void setAutoevCompromiso(String autoevCompromiso) {
        this.autoevCompromiso = autoevCompromiso;
    }

    public String getAutoevCumplimientoPuntualidad() {
        return autoevCumplimientoPuntualidad;
    }

    public void setAutoevCumplimientoPuntualidad(String autoevCumplimientoPuntualidad) {
        this.autoevCumplimientoPuntualidad = autoevCumplimientoPuntualidad;
    }

    public String getAutoevCalidadTrabajo() {
        return autoevCalidadTrabajo;
    }

    public void setAutoevCalidadTrabajo(String autoevCalidadTrabajo) {
        this.autoevCalidadTrabajo = autoevCalidadTrabajo;
    }

    public String getAutoevCooperacionTrabajoEquipo() {
        return autoevCooperacionTrabajoEquipo;
    }

    public void setAutoevCooperacionTrabajoEquipo(String autoevCooperacionTrabajoEquipo) {
        this.autoevCooperacionTrabajoEquipo = autoevCooperacionTrabajoEquipo;
    }

    public String getAutoevLiderazgoIniciativa() {
        return autoevLiderazgoIniciativa;
    }

    public void setAutoevLiderazgoIniciativa(String autoevLiderazgoIniciativa) {
        this.autoevLiderazgoIniciativa = autoevLiderazgoIniciativa;
    }

    public String getFortalezas() {
        return fortalezas;
    }

    public void setFortalezas(String fortalezas) {
        this.fortalezas = fortalezas;
    }

    public String getDebilidades() {
        return debilidades;
    }

    public void setDebilidades(String debilidades) {
        this.debilidades = debilidades;
    }

    public String getRecomendaciones() {
        return recomendaciones;
    }

    public void setRecomendaciones(String recomendaciones) {
        this.recomendaciones = recomendaciones;
    }

    @XmlTransient
    public List<DetalleActividadesSemestre> getDetalleActividadesSemestreList() {
        return detalleActividadesSemestreList;
    }

    public void setDetalleActividadesSemestreList(List<DetalleActividadesSemestre> detalleActividadesSemestreList) {
        this.detalleActividadesSemestreList = detalleActividadesSemestreList;
    }

    public Estudiante getIdEstudiante() {
        return idEstudiante;
    }

    public void setIdEstudiante(Estudiante idEstudiante) {
        this.idEstudiante = idEstudiante;
    }

    public boolean isEdicionFormato() {
        return edicionFormato;
    }

    public void setEdicionFormato(boolean edicionFormato) {
        this.edicionFormato = edicionFormato;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idInformeFinalPractica != null ? idInformeFinalPractica.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof InformeFinalPracticaEmpresarial)) {
            return false;
        }
        InformeFinalPracticaEmpresarial other = (InformeFinalPracticaEmpresarial) object;
        if ((this.idInformeFinalPractica == null && other.idInformeFinalPractica != null) || (this.idInformeFinalPractica != null && !this.idInformeFinalPractica.equals(other.idInformeFinalPractica))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Persistencia.InformeFinalPracticaEmpresarial[ idInformeFinalPractica=" + idInformeFinalPractica + " ]";
    }
    
}
